package cn.source.zk.domain.vo;

import cn.source.common.annotation.Excel;
import cn.source.common.annotation.Excels;
import cn.source.common.core.domain.entity.Customer;
import cn.source.zk.domain.entity.Area;
import cn.source.zk.domain.entity.ConnectionPoint;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class SubstationConnectionPointVO {

    private static final long serialVersionUID = 1L;

    /**
     * 变电站num
     */
    private Long num;

    /**
     * 变电站名称
     */
    @Excel(name = "变电站名称")
    private String substationName;

    /**
     * 变电站所属地区
     */
    private Long areaNum;

    private String type;

    /**
     * 祖级名称列表
     */
    @Excel(name = "地区")
    private String ancestorNames;

    /**
     * 变电站所属客户
     */
    private Long customerNum;

    /**
     * 变电站位置
     */
    @Excel(name = "变电站位置")
    private String location;

    /**
     * 客户所属公司
     */
    private String companyName;

    /**
     * 客户联系人
     */
    private String contactName;

    /**
     * 客户手机号
     */
    private String phone;

    /**
     * 总容量
     */
    @Excel(name = "总容量(MW)")
    private Double totalCapacity;

    /**
     * 并网点数量
     */
    @Excel(name = "并网点数量")
    private Integer pointsAmount;

    /**
     * 规模说明
     */
    @Excel(name = "规模说明")
    private String scaleDesc;

    /**
     * 创建者
     */
    private String createBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 并网点数据
     */
    private List<ConnectionPoint> connectionPointList;

    private Area area;

    @Excels({
            @Excel(name = "公司", targetAttr = "companyName", type = Excel.Type.EXPORT),
            @Excel(name = "联系人", targetAttr = "contactName", type = Excel.Type.EXPORT),
            @Excel(name = "联系方式", targetAttr = "phone", type = Excel.Type.EXPORT),
    })
    private Customer customer;

    private List<Long> areaChildNums;

    private Long companyId;

}
